package jmine.tec.script.persistent.repository;

import jmine.tec.script.persistent.domain.Script;

/**
 * Responsável por carregar um script, efetuando parse e montando a entidade.
 * 
 * @author lundberg
 */
public interface ScriptLoader {

    /**
     * Efetua a carga do script contido no arquivo no path dado. Entidades colaboradoras do script, tais como linguagem, propósito e outros
     * scripts anexos, devem ser requisitados ao repositório.
     * 
     * @param transientScriptRepository repository
     * @param path path
     * @return script
     */
    Script load(TransientScriptRepository transientScriptRepository, String path);

    /**
     * Tipo do loader
     * 
     * @return type
     */
    String type();
}
